在Ubuntu中定位运行中的程序路径
在Ubuntu中,发现某个删除过的vscode程序依然在运行,使用
sudo apt-get remove code
无法卸载vscode,但是Ubuntu的侧边栏中又可以调起vscode的程序。
那么我们就开始发现之旅吧。找到这个程序,然后干掉它。
1. 查询进程
ps -A
出现如下的结果
➜ ~ ps -A
PID TTY TIME CMD
8302 ? 00:01:02 chromium-browse
8852 ? 00:00:02 code
8856 ? 00:00:00 code
8876 ? 00:00:00 code
8953 ? 00:00:00 code
8960 ? 00:00:06 code
8975 ? 00:00:00 code
8984 ? 00:00:00 code
9431 pts/13 00:00:00 ps
可以肯定这些code进程虽然PID不同,但是都是同一个程序文件。
2. 定位文件
那我们就挑一个PID,比如最后的一个code的PID是8984
我们执行命令:
sudo ls -l /proc/8984/exe
执行后的结果:
lrwxrwxrwx 1 railsgirls railsgirls 0 12月 28 15:20 /proc/8984/exe -> /home/railsgirls/下载/VSCode-linux-ia32/code
可以看到/home/railsgirls/下载/VSCode-linux-ia32/code
就是我要找的文件。
3.清除文件
接下来就是干掉文件了。目前code程序在运行。
干点邪恶的事情,在code运行的时候,直接干掉文件,看看会出现什么。
执行:
rm /home/railsgirls/下载/VSCode-linux-ia32/code
发现运行中的vscode程序并没有受到影响。然而,再次点击Ubuntu左侧板的vscode图标,再也无法启动vscode了,说明删除有效。
参考文献:
1. How to get (from terminal) total number of threads (per process and total for all processes)
2. How to view threads of a process on Linux
3. How can I know the absolute path of a running process?